package hello;

/**
 * Created with IntelliJIDEA.
 * Description:
 * User: ASUS
 * Date: 2025/8/30
 * Time: 20:23
 */
// 导入java.util.Arrays类，用于数组的toString方法
import java.util.Arrays;

// 定义冒泡排序示例类
public class BubbleSortExample {
    // 定义冒泡排序方法，参数为整数数组
    public static void bubbleSort(int[] arr) {
        // 获取数组长度，用于控制循环次数
        int n = arr.length;
        // 外层循环控制排序的轮数，共需要n-1轮
        for (int i = 0; i < n - 1; i++) {
            // 内层循环进行相邻元素比较，每轮结束后最大元素已"浮"到末尾
            // 每轮比较次数递减i次，因为已有i个元素就位
            for (int j = 0; j < n - i - 1; j++) {
                // 如果当前元素大于下一个元素，则交换它们
                if (arr[j] > arr[j + 1]) {
                    // 交换元素的标准写法，使用临时变量
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }

    // 主方法，程序入口
    public static void main(String[] args) {
        // 定义一个待排序的整数数组
        int[] data = {64, 34, 25, 12, 22, 11, 90};
        // 调用冒泡排序方法对数组进行排序
        bubbleSort(data);
        // 输出排序后的数组，使用Arrays.toString方法格式化输出
        System.out.println("冒泡排序后的数组: " + Arrays.toString(data));
        // 预期输出: [11, 12, 22, 25, 34, 64, 90]
    }
}
